package com.haidechizi.sort;

import java.util.Arrays;

/**
 * @author: wangdejun
 * @create: 2020-03-14 09:47
 **/
public class BubbleSort {

    public static void main(String[] args) {
        int[] arr = new int[]{8, 3, 5, 0, 1, 4, 6, 7};
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr));

    }


    /**
     * 冒泡排序
     * 核心原理：相邻两个进行比较，将大的数交换到后面
     * 比较的轮数：length-1
     * 每轮比较的次数length-i(没比较一轮，从右到左的i个数都是已经排好序的数字，无需重新比较)
     *
     * @param arr
     */
    public static void bubbleSort(int[] arr) {

        // 比较的轮数length-1
        for (int i = 0; i < arr.length - 1; i++) {
            // 每轮需要比较的次数
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

    }
}
